<?php
def("amicitia/modelo/ejecucion/","Regla");
def("amicitia/modelo/entidades/","Pareja");
def("amicitia/modelo/entidades/","Persona");
def("amicitia/modelo/entidades/","Juego");

/**
 * Esta regla verifica que las parejas no sean del mismo sexo.
 * 
 * @author Willy A. Kuster
 */
class ReglaMismoSexo implements Regla {
	
	const ETERO = 0;
	const HOMO = 1;
	
	private $criterio = self::ETERO;
	
	public function verificar(Pareja $pareja, Persona $interesado, array $rama, Juego $juego) {
		if ($pareja->getReceptor()->getSexo()==$pareja->getDador()->getSexo()) {
			if ($this->criterio == self::ETERO)
				return false;
			elseif ($this->criterio == self::HOMO)
				return true;
		} else {
			if($this->criterio == self::ETERO)
				return true;
			elseif ($this->criterio == self::HOMO)
				return false;
		}
		return true;
	}
	
	public function setCriterio($criterio){
		$this->criterio = $criterio;
	}
	
}
?>